SQL Server建库建表命令

您所在的位置:网站首页 sql server建立表语句 SQL Server建库建表命令

SQL Server建库建表命令

2024-07-07 02:52| 来源: 网络整理| 查看: 265

数据库建库建表 1.直接右键数据库,选择新建数据库; 2.通过新建查询,输入命令建库建表。

使用CREATE DATABASE创建数据库school。 数据文件的逻辑名称自定义,需要注意的点是主数据文件的物理名称需填写存储文件的地址。

CREATE DATABASE school on primary --表示属于primary文件组 ( name='school_data', --主数据文件的逻辑名称 filename='D:\school_data.dbf', --主数据文件的物理名称 size=5MB, --主数据文件的初始大小 maxsize=1000MB, --主数据文件增长的最大值 filegrowth=10% --主数据文件的增长率 ) log on ( name='school_log', -- 日志文件的逻辑名称 filename='D:\school_log.ldf',-- 日志文件的物理名称 size=2mb,--日志文件的初始大小 maxsize=20mb, --日志文件增长的最大值 filegrowth=1mb --日志文件的增长率 )

可能遇到的错误: 对文件“e:\school.mdf"的目录查找失败,出现操作系统错误(系统找不到指定的路径。)CREATE DATABASE失败。无法创建列出的某些文件名。 解决方法:检查本地计算机是否存在e盘。

使用create table创建数据表Student。

CREATE TABLE [〈库名〉]〈表名〉( 〈列名〉〈数据类型〉[〈列级完整性约束条件〉] [,列名]〈数据类型〉[〈列级完整性约束条件〉]] [,…n] [,〈表级完整性约束条件〉][,…n] );

要创建一张用户表存储用户数据,需要知道表的结构,如表的名称以及该表中每个列的名称和数据类型,指出每个列中是否允许空值属性等。 注意:数据库中的表包含系统表和用户表。系统表在创建数据库的时候自动生成的,存储数据库和表的相关信息,用户不应该直接更改系统表的内容。 在这里插入图片描述 DEFAULT:如果在插入过程中来显式提供值,则指定为列提供的值。 例子:默认值为男——default(‘男’); PRIMARY KEY:通过唯一索引对给定的一列或多列强制实体完整性的约束。 例子:学号为主键——constraint pk_stu primary key; UNIQUE:通过唯一索引为给定的一列或多列提供实体完整性的约束。 例子:姓名为唯一约束constraint uk_name unique; CHECK:通过限制可输入到一列或多列中的可能值强制域完整性的约束。 例子:电话——constraint ck_phone check(phone like ‘8295[0-9][0-9][0-9][0-9]’) 。 student表定义如上图,代码片段如下:

use school --在数据库school中创建一个表 CREATE TABLE student ( Stu_id Varchar(10) constraint pk_stu primary key NOT NULL, Stu_name Varchar(10) constraint uk_name unique NOT NULL, Stu_sex Varchar(2) default (‘男’) NOT NULL, Birthdate datetime NULL, Phone Varchar(8) constraint ck_phone check(phone like ‘8295[0-9][0-9][0-9][0-9]’) NULL, age as year(getdate())-year(birthday), Address Varchar(100) NULL, )

在这里插入图片描述 学会了设置主键、约束,还很容易遇到组合主键和外键的问题 使用Constraint关键字定义约束方式,可以指定约束名称。

CREATE TABLE Course( Stu_id Varchar(10)constraint fk_stu_id foreign key references Students(Stu_id) NOT NULL, Course_id Varchar(4)constraint fk_Course_id foreign key references Course(Course_id) NOT NULL, constraint pk_sc primary key(Stu_id,Course_id) )

修改基本表的操作 通过更改、添加、除去列和约束或者通过启用或禁用约束和触发器来更改表。

ALTER TABLE table --table为表名 ALTER COLUMN column_name { data_type[NULL | NOT NULL]} | ADD {[] | column_name AS computed_column_expression }[…n] | [WITH CHECK | WITH NOCHECK] ADD {}[…n] | DROP {[CONSTRAINT]constraint_name | COLUMN column [,…n] | {CHECK | NOCHECK } CONSTRAINT {ALL | constraint_name [,…n]} }

1.ALTER COLUMN:指定要更改给定列。 (1)例子:将student表中的Stu_sex字段设为空(null)

use school ALTER TABLE student ALTER COLUMN Stu_sex varchar(2) null

2.ADD:指定要添加一个或多个列定义、计算列定义或者表约束。 (2)例子:在student表中添加一列class,类型为varchar(8),字段允许空。

use school ALTER TABLE student ADD class varchar(8) NULL

注意:向已存在的表中增加列时,应使新增加的列具有默认值或允许其为空值。添加列完成时,SQL Server将向表中已存在的行填充新增列的默认值或空值。如果既没有提供默认值也不允许为空值,那么新增列的操作将出错,因为SQL Sever不知道该怎么处理那些已经存在的行。

3.DROP {[CONSTRAINT]constraint_name|COLUMN column_name}:指定从表中删除constraint name或者column_name。 (3)例子:将student表中的class字段删除(class字段有约束ck_class1)。

use school ALTER TABLE student DROP CONSTRAINT ck_class1, COLUMN class

4.给表增加约束

ALTER TABLE 表名 ADD CONSTRAINT 检查约束名 CHECK (约束表达式)[,…N]

(4)例子:在school数据库中,为学生表的出生日期列创建一个检查约束,以保证输入的日期数据大于2000年1月1日而小于当天的日期。

ALTER TABLE school ADD CONSTRAINT ck_bd CHECK(出生日期)‘01/01/2000’AND 出生日期(GETDATE())

5.给表创建外键 1.使用命令方式创建外键; 2.在创建新表时同时产生外键约束以及为已经存在的表创建外键约束。

ALTER TABLE 表名 ADD CONSTRAINT 约束名 [FOREIGN KEY ] {(列名[,…])} REFERENCES 参考表名 [( 参考主键列[,…] ) ]

(5)例子:在Class表上,为班级编号Class_id字段创建一个外键约束,从而保证输入有效的班级编号。

ALTER TABLE Class ADD CONSTRAINT fk_class FOREIGN KEY (班级编号Class_id) REFERENCES 班级(班级编号Class_id)

建立和删除索引 建立索引是加快表的查询速度的有效手段,索引可以建在该表的一列或多列上。 ASC:升序,DESC:降序,缺省值为ASC

CREATE [UNIQUE] INDEX ON ([][,[]]…); --指定要建索引的基本表的名字,指定索引值的排列次序

(1)例子:在学生表上按学号升序建立唯一索引。

CREATE UNIQUE INDEX Stu_Stu_id ON student(Stu_id)

(2)例子:在班级表上按学号升序和课程号降序建唯一索引。

CREATE UNIQUE INDEX SC ON Class(Stu_id ASC,Course_id DESC)

删除school数据库及数据表 注意:删除数据库前考虑是否需要备份。

DROP DATABASE school --删除数据库,一般很少使用 DROP TABLE student


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3